/**
 * 使用 fetch 发送请求
 *
 * @param {string | URL | Request} url 请求地址
 * @param {boolean} jsonParse 是否对响应数据进行 JSON 解析，默认为 true
 * @param {RequestInit} config 请求初始化配置对象
 * @returns {Promise<any>} 请求响应结果
 */
export const reqByFetch = async (
  {
    url,
    jsonParse = true,
    config = {}
  }: {
    url: string | URL | Request,
    jsonParse?: boolean,
    config?: RequestInit
  }
): Promise<any> => {
  const res = fetch(url, config)
  if (jsonParse) return res
    .then(response => response.json())
    .catch(error => Promise.reject(error))
  else return res
    .then(response => response.text())
    .catch(error => Promise.reject(error))
}
